from PyQt5.QtWidgets import QApplication, QWidget, QProgressBar, QVBoxLayout
import time

class ProgressBarDemo(QWidget):
    def __init__(self):
        super().__init__()

        # 创建一个垂直布局
        layout = QVBoxLayout()

        # 创建一个进度条
        self.progress_bar = QProgressBar()

        # 设置进度条的初始值
        self.progress_bar.setValue(0)

        # 将进度条添加到布局中
        layout.addWidget(self.progress_bar)

        # 设置窗口布局
        self.setLayout(layout)

        # 启动一个线程来更新进度条的值
        self.update_progress_bar()

    def update_progress_bar(self):
        # 线程启动时，将进度条的值设置为20
        self.progress_bar.setValue(20)

        # 更新进度条的值
        for i in range(20, 101, 2):
            self.progress_bar.setValue(i)
            time.sleep(1)

        # 线程结束时，将进度条的值设置为100
        self.progress_bar.setValue(100)

if __name__ == '__main__':
    app = QApplication([])
    demo = ProgressBarDemo()
    demo.show()
    app.exec_()
